/*
 * Copyright (C), 2013-2015, 韩伟
 * FileName: PwdChangeController.java
 * Author:   weih
 * Date:     2015年3月20日 下午3:26:54
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.cango.qutz.web.auth.user.controller;

import java.util.Date;

import javax.servlet.http.HttpServletResponse;

import com.cango.qutz.web.entity.ReturnVO;
import com.cango.qutz.web.common.SessionUtils;
import com.cango.qutz.web.entity.ReturnVO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cango.qutz.web.auth.user.service.IPasswordService;
import com.cango.qutz.web.common.SessionUtils;
import com.cango.framework.base.controller.BaseController;
import com.cango.framework.base.entity.SessionUserVo;
import com.cango.framework.base.util.MD5Util;

/**
 *  密码修改controller<br> 
 * 〈功能详细描述〉
 *
 * @author weih
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
@Controller
public class PwdChangeController extends BaseController {
    private Log log = LogFactory.getLog(PwdChangeController.class);
    
    /**
     * service注入
     */
    @Autowired
    private IPasswordService passwordService;
    
    @RequestMapping("/modifyPass")
    public String modifyPass(Model model){
        model.addAttribute("user",SessionUtils.getSessionUser());
        return "auth/user/passwordChange";
    }
    
	/**
	 * 功能描述: <br>
	 *     保存用户修改的密码
	 *
	 * @param loginId
	 * @param pwd
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	@RequestMapping("/changePass")
	@ResponseBody
    public ReturnVO changePass(String loginId, String pwd) {
	    log.info("User【"+loginId+"】 change password at "+new Date());
        // 保存密码
        String password = MD5Util.apr1Crypt(pwd, loginId);
        passwordService.updateChangePass(loginId, password);
        ReturnVO vo = new ReturnVO(HttpServletResponse.SC_OK, "success");
        SessionUserVo user = SessionUtils.getSessionUser();
        user.setPassword(password);
        return vo;
    }
	
	/**
	 * 功能描述: <br>
	 *     验证输入的密码是否与当前用户密码一致
	 *
	 * @param pwd
	 * @param response
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	@RequestMapping("/validPass")
    public void validPass(String loginId, String pwd, HttpServletResponse response) {
	    log.info("User【"+loginId+"】 input incorrect password at "+new Date());
        String password = MD5Util.apr1Crypt(pwd, loginId);
        if (SessionUtils.getSessionUser().getPassword().equals(password)) {
            super.ajaxMessage(response, "true");
        } else {
            super.ajaxMessage(response, "false");
        }
	}
}
